﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;
using GaSaiGon.Report;

namespace GaSaiGon.GUI
{
    public partial class frmDoiTraVe : Form
    {
        public frmDoiTraVe()
        {
            InitializeComponent();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                lbLyDo.Visible = true;
                txtLyDo.Visible = true;
            }
            else
            {
                lbLyDo.Visible = false;
                txtLyDo.Visible = false;
            }
        }

        private void frmDoiTraVe_Load(object sender, EventArgs e)
        {
            lbLyDo.Visible = false;
            txtLyDo.Visible = false;
            btnTraVe.Visible = false;
            btnDoiVe.Visible = false;
        }

        private void btnKiemTra_Click(object sender, EventArgs e)
        {
            ThongTinBUS TTBus = new ThongTinBUS();
            ThongTinDTO TTDto = new ThongTinDTO();

            TTDto.MaVe = int.Parse(txtMaVe.Text.ToString());
            DataTable dt = new DataTable();
            dt = TTBus.ThongTinMotVe(TTDto);
            if (dt.Rows.Count == 0)
            {
                MessageBox.Show("Mã vé không hợp lệ !");
            }
            else
            {
                DateTime dtThoiGianHienTai = System.DateTime.Now;
                DateTime dtThoiGianKhoiHanh = DateTime.Parse(dt.Rows[0]["NgayKhoiHanh"].ToString());
                TimeSpan ThoiGianMuaVe = dtThoiGianKhoiHanh - dtThoiGianHienTai;
                int SoGio = ThoiGianMuaVe.Days * 24;
                string LoaiChuyen = dt.Rows[0]["TenLoaiChuyen"].ToString();
                lbKiemTra.Text = "Không được trả vé !";
                if (LoaiChuyen == "Thống nhất" && SoGio >= 4)
                {
                    lbKiemTra.Text = "Được phép trả vé !";
                    btnTraVe.Visible = true;
                    btnDoiVe.Visible = true;
                }
                if ((LoaiChuyen == "Địa phương" || LoaiChuyen == "Liên vận quốc tế") && SoGio >= 2)
                {
                    lbKiemTra.Text = "Được phép trả vé !";
                    btnTraVe.Visible = true;
                    btnDoiVe.Visible = true;
                }
                if (lbKiemTra.Text == "Không được trả vé !" && checkBox1.Checked == true)
                {
                    lbKiemTra.Text = "Đang chờ xử lý !";
                    TTDto.ThemTraDoiVe(int.Parse(txtMaVe.Text.ToString()), txtLyDo.Text.ToString(), 3, 1);
                    TTBus.ThemTraDoiVe(TTDto);
                }
            }
        }

        private void btnTraVe_Click(object sender, EventArgs e)
        {
            ThongTinBUS TTBus = new ThongTinBUS();
            ThongTinDTO TTDto = new ThongTinDTO();
            if (checkBox1.Checked == false)
            {
                TTDto.ThemTraDoiVe(int.Parse(txtMaVe.Text.ToString()), "Đúng quy định", 1,2);
                TTBus.ThemTraDoiVe(TTDto);
            }
            if (checkBox1.Checked == true)
            {
                TTDto.ThemTraDoiVe(int.Parse(txtMaVe.Text.ToString()),txtLyDo.Text.ToString(), 1,2);
                TTBus.ThemTraDoiVe(TTDto);
            }
            frmTraVe frm = new frmTraVe();
            crTraVe cr = new crTraVe();
            cr.SetParameterValue("MaVe", txtMaVe.Text);
            frm.KhoiTaoReport(cr);
            frm.Show();
        }

        private void btnDoiVe_Click(object sender, EventArgs e)
        {
            ThongTinBUS TTBus = new ThongTinBUS();
            ThongTinDTO TTDto = new ThongTinDTO();
            if (checkBox1.Checked == false)
            {
                TTDto.ThemTraDoiVe(int.Parse(txtMaVe.Text.ToString()), "Đúng quy định", 1,3 );
                TTBus.ThemTraDoiVe(TTDto);
            }
            if (checkBox1.Checked == true)
            {
                TTDto.ThemTraDoiVe(int.Parse(txtMaVe.Text.ToString()), txtLyDo.Text.ToString(), 1,3);
                TTBus.ThemTraDoiVe(TTDto);
            }
            frmDoiVe frm = new frmDoiVe();
            crvDoiVe cr = new crvDoiVe();
            cr.SetParameterValue("MaVe", txtMaVe.Text);
            frm.KhoiTaoReport(cr);
            frm.Show();
        }

        private void btnLamMoi_Click(object sender, EventArgs e)
        {
            ThongTinBUS TTBus = new ThongTinBUS();
            ThongTinDTO TTDto = new ThongTinDTO();
            TTDto.MaVe = int.Parse(txtMaVe.Text.ToString());

            DataTable dt = new DataTable();
            dt = TTBus.XuLyTraDoiVe(TTDto);
            if (int.Parse(dt.Rows[0]["HienTrang"].ToString()) == 1)
            {
                lbKiemTra.Text = "Đã xử lý xong !";
                btnTraVe.Visible = true;
                btnDoiVe.Visible = true;
            }
        }
    }
}
